package com.funong.matrix.biz.power.facade;

import com.funong.matrix.biz.base.entity.SysPermissionEntity;
import com.funong.matrix.biz.power.pojo.dto.SysRolePermissionDTO;
import com.funong.matrix.core.dto.QueryDTO;
import com.funong.matrix.core.dto.Result;

import java.util.List;

public interface SysRolePermissionFacade {

    /**
     * 根据角色编号查询权限列表
     */
    SysRolePermissionDTO queryPermissionListByRoleCode(String roleCode);

    /**
     * 角色绑定用户,权限
     * roleId.userCodeList
     */
    void saveRolePermission(SysRolePermissionDTO rolePermissionDTO);

    /**
     * 角色绑定用户
     * roleId.userCodeList
     */
    void saveRoleUser(SysRolePermissionDTO rolePermissionDTO);

    /**
     * 根据角色编号查询权限编号
     *
     * @param roleCode
     * @return
     */
    List<String> queryPermissionCodeByRoleCode(String roleCode);


    /**
     * 查询权限信息
     */
    Result<List<SysPermissionEntity>> queryPermissionList(QueryDTO<SysPermissionEntity> permissionQO);

    /**
     * 新增保存权限信息
     */
    Boolean savePermission(SysPermissionEntity sysPermissionEntity);

    /**
     * 删除权限信息
     */
    Boolean deletePermission(SysPermissionEntity sysPermissionEntity);

    /**
     * 修改权限信息
     */
    Boolean updatePermission(SysPermissionEntity sysPermissionEntity);

    /**
     * 根据roleCode查询树状层级
     */
    List<SysPermissionEntity> queryPermissionList();
}